.\" The following commands are required for all man pages.
.Dd October 28, 2015
.Dt ESREVERSE 1
.Os
.Sh NAME
.Nm esreverse
.Nd Report on the contents of an ES
.\" This next command is for sections 2 and 3 only.
.\" .Sh LIBRARY
.Sh SYNOPSIS
.Nm esreverse
.Op Fl "err stdout"
.Op Fl "err stderr"
.Op Fl verbose | Fl v
.Op Fl quiet | q
.Op Fl host Ar host Ns Op : Ns Ar port
.Op Fl max Ar max_frames | Fl m Ar max_frames
.Op Fl freq Ar frame_freq
.Op Fl tsout
.Op Fl pes |-ts
.Op Fl server
.Op Fl x
.Op Fl h264 | avc | h262
.Ar in_file
.Ar out_file | Fl stdout
.Sh DESCRIPTION
Output a reversed stream derived from the input H.264 (MPEG-4/AVC)
or H.262 (MPEG-2) elementary stream.
.Pp
If output is to an H.222 Transport Stream, then fixed values for
the PMT PID (0x66) and video PID (0x68) are used.
.Ss Files
.Bl -tag
.It Ar in_file
is the input elementary stream.
.It Ar out_file
is the output stream, either an equivalent elementary
stream, or an H.222 Transport Stream (but see
Fl stdout No and Fl host below).
.El
.Ss Switches
.Bl -tag
.It Fl "err stdout"
Write error messages to standard output (the default)
.It Fl "err stderr"
Write error messages to standard error (Unix traditional)
.It Fl v , Fl verbose
Output additional (debugging) messages
.It Fl q , Fl quiet
Only output error messages
.It Fl stdout
Write output to <stdout>, instead of a named file. Forces
.Fl quiet No and Fl "err stderr".
.It Fl host Ar host Ns Op : Ns Ar port
Writes output (over TCP/IP) to the named <host>,
instead of to a named file. If <port> is not
specified, it defaults to 88. Implies
.Fl tsout .
.It Fl max Ar max_frames | Fl m Ar max_frames
Maximum number of frames to read
.It Fl freq Ar frame_freq
Specify the frequency of frames to try to keep
when reversing. Defaults to 8.
.It Fl tsout
Output H.222 Transport Stream
.It Fl pes , ts
The input file is TS or PS, to be read via the
PES to ES reading mechanisms
.It Fl server
Also output as normal forward video as reversal
data is being collected. Implies
.Fl pes No and Fl tsout .
.It Fl x
Temporary extra debugging information
.El
.Ss Stream type:
If input is from a file, then the program will look at the start of
the file to determine if the stream is H.264 or H.262 data. This
process may occasionally come to the wrong conclusion, in which case
the user can override the choice using the following switches.
.Bl -tag
.It Fl h264 , avc
Force the program to treat the input as MPEG-4/AVC.
.It Fl h262
Force the program to treat the input as MPEG-2.
.El
.\" The following cnds should be uncommented and
.\" used where appropriate.
.\" .Sh IMPLEMENTATION NOTES
.\" This next command is for sections 2, 3 and 9 function
.\" return values only.
.\" .Sh RETURN VALUES
.\" This next command is for sections 1, 6, 7 and 8 only.
.\" .Sh ENVIRONMENT
.\" .Sh FILES
.\" .Sh EXAMPLES
.\" This next command is for sections 1, 6, 7, 8 and 9 only
.\"     (command return values (to shell) and
.\"     fprintf/stderr type diagnostics).
.\" .Sh DIAGNOSTICS
.\" .Sh COMPATIBILITY
.\" This next command is for sections 2, 3 and 9 error
.\"     and signal handling only.
.\" .Sh ERRORS
.Sh SEE ALSO
.Xr esdots 1 ,
.\" .Sh STANDARDS
.\" .Sh HISTORY
.\" .Sh AUTHORS
.\" .Sh BUGS
